//假如我们有多个promise实例,all和race
var promise01 = new Promise(function (resolve, reject) {
    if(1==1){
        resolve(10); //把自己的返回值传入回调函数
    }
    // if(1!=1){
    //     resolve(10);//这次回调函数不会执行
    // }
   // console.log("Promise函数里面的代码执行");//promise函数是立刻执行
    return 10;
})

var promise02 = new Promise(function (resolve, reject) {
    if(1==1){
        resolve(10); //把自己的返回值传入回调函数
    }
    // if(1!=1){
    //     resolve(10);//这次回调函数不会执行
    // }
    // console.log("Promise函数里面的代码执行");//promise函数是立刻执行
    return 10;
})
var promise03 = new Promise(function (resolve, reject) {
    if(1==1){
       // resolve(10); //把自己的返回值传入回调函数
        reject(10)  //假如排除
    }
    // if(1!=1){
    //     resolve(10);//这次回调函数不会执行
    // }
    // console.log("Promise函数里面的代码执行");//promise函数是立刻执行
    return 10;
})

promise01.then((data)=>
{
    console.log(data)
    return 20;
})
promise02.then((data)=>
{
    console.log(data)
    return 20;
})
promise03.then((data)=>
{
    //假如抛出异常
    console.log(data)
    return 20;
}).catch((data)=>{
    console.log("捕获")
})
//all 就是大家一起跑完(回调函数也全部执行)，并且把返回值传给all的回调 当然这个返回值是数组
var all  =Promise.all([promise01,promise02,promise03])
//假如有一个发生异常都会被all给捕获，就是在回调函数中有捕获的代码段
all.then((data)=> console.log(data))


//假如是race 就比promise里面的任务谁执行的快谁先返回 无论是异常还是reslove
var race  = Promise.race([promise01,promise02,promise03])
//因为是第一个先执行所以返回10
race.then((data)=> console.log(data))
